package com.swak.annotation.job;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import com.swak.define.CurdDefine;
import com.swak.utils.StringUtils;

/**
 * 延迟任务
 * 
 * @author 618lf
 */
@Target({ ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface DelayJobEvent {

	/**
	 * 任务名称
	 * 
	 * @return
	 */
	String job() default StringUtils.EMPTY;

	/**
	 * 配置 Config 的字段;
	 * 
	 * @return
	 */
	String configField() default CurdDefine.IdProperty;

	/**
	 * 延迟时间、延迟时间字段 至少使用一个
	 * 
	 * @return
	 */
	String delayTimeField() default StringUtils.EMPTY;

	/**
	 * 延迟时间、延迟时间字段 至少使用一个
	 * 
	 * @return
	 */
	long delayTimeMs() default -1;
}